package cn.org.chiss.rhin._2015.base;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlType;
import java.util.List;


/**
 * <p>Address complex type的 Java 类。
 *
 * <p>以下模式片段指定包含在此类中的预期内容。
 *
 * <pre>
 * &lt;complexType name="Address"&gt;
 *   &lt;complexContent&gt;
 *     &lt;extension base="{http://www.chiss.org.cn/rhin/2015}Any"&gt;
 *       &lt;sequence&gt;
 *         &lt;element name="use" type="{http://www.chiss.org.cn/rhin/2015}AddressUse" minOccurs="0"/&gt;
 *         &lt;element name="type" type="{http://www.chiss.org.cn/rhin/2015}AddressType" minOccurs="0"/&gt;
 *         &lt;element name="text" type="{http://www.chiss.org.cn/rhin/2015}String" minOccurs="0"/&gt;
 *         &lt;element name="administrativeDivision" type="{http://www.chiss.org.cn/rhin/2015}String" minOccurs="0"/&gt;
 *         &lt;element name="country" type="{http://www.chiss.org.cn/rhin/2015}String" minOccurs="0"/&gt;
 *         &lt;element name="state" type="{http://www.chiss.org.cn/rhin/2015}String" minOccurs="0"/&gt;
 *         &lt;element name="city" type="{http://www.chiss.org.cn/rhin/2015}String" minOccurs="0"/&gt;
 *         &lt;element name="district" type="{http://www.chiss.org.cn/rhin/2015}String" minOccurs="0"/&gt;
 *         &lt;element name="town" type="{http://www.chiss.org.cn/rhin/2015}String" minOccurs="0"/&gt;
 *         &lt;element name="street" type="{http://www.chiss.org.cn/rhin/2015}String" minOccurs="0"/&gt;
 *         &lt;element name="houseNumber" type="{http://www.chiss.org.cn/rhin/2015}String" minOccurs="0"/&gt;
 *         &lt;element name="line" type="{http://www.chiss.org.cn/rhin/2015}String" maxOccurs="unbounded" minOccurs="0"/&gt;
 *         &lt;element name="postalCode" type="{http://www.chiss.org.cn/rhin/2015}String" minOccurs="0"/&gt;
 *         &lt;element name="period" type="{http://www.chiss.org.cn/rhin/2015}Period" minOccurs="0"/&gt;
 *       &lt;/sequence&gt;
 *     &lt;/extension&gt;
 *   &lt;/complexContent&gt;
 * &lt;/complexType&gt;
 * </pre>
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Address", propOrder = {
        "use",
        "type",
        "text",
        "administrativeDivision",
        "country",
        "state",
        "city",
        "district",
        "town",
        "street",
        "houseNumber",
        "line",
        "postalCode",
        "period"
})
@EqualsAndHashCode(callSuper=false)
@Data
@Accessors(chain = true)
public class Address extends Any
{

    /**
     * 地址用途
     */
    protected AddressUse use;
    /**
     * 地址类型
     */
    protected AddressType type;
    /**
     * 地址全文本
     */
    protected String text;
    /**
     * 行政区划
     */
    protected String administrativeDivision;
    /**
     * 国家
     */
    protected String country;
    /**
     * 省
     */
    protected String state;
    /**
     * 市
     */
    protected String city;
    /**
     * 县(区)
     */
    protected String district;
    /**
     * 乡、镇
     */
    protected String town;
    /**
     * 街道
     */
    protected String street;
    /**
     * 门牌号
     */
    protected String houseNumber;

    protected List<String> line;
    /**
     * 邮政编码
     */
    protected String postalCode;

    protected Period period;

}
